import pygame
from pygame.sprite import Sprite


class Alien(Sprite):

    def __init__(self, game):
        super().__init__()
        self.screen = game.screen
        self.settings = game.settings

        # 加载外星人图像并设置其 rect 属性。
        self.image = pygame.image.load('images/ship1.bmp')
        self.image = pygame.transform.scale(self.image, (60, 60))
        self.rect = self.image.get_rect()

        # 每个新的外星人开始时都在屏幕的左上角附近。
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height

        # 存储外星人的精确水平位置。
        self.x = float(self.rect.x)

    def check_edges(self):
        """如果外星人在屏幕边缘，返回 True。"""
        screen_rect = self.screen.get_rect()
        if self.rect.right >= screen_rect.right or self.rect.left <= 0:
            return True

    def update(self):
        """将外星人向右或向左移动。"""
        self.x += (self.settings.alien_speed * self.settings.fleet_direction)
        self.rect.x = self.x